package org.osflash.signals.events;

import org.osflash.signals.IPrioritySignal;

interface IEvent {
	var target(getTarget, setTarget) : Dynamic;
	var currentTarget(getCurrentTarget, setCurrentTarget) : Dynamic;
	var signal(getSignal, setSignal) : IPrioritySignal;
	var bubbles(getBubbles, setBubbles) : Bool;

	/** The object that originally dispatched the event.
	 *  When dispatched from an signal, the target is the object containing the signal. */
	function getTarget() : Dynamic;
	function setTarget(value : Dynamic) : Dynamic;
	/** The object that added the listener for the event. */
	function getCurrentTarget() : Dynamic;
	function setCurrentTarget(value : Dynamic) : Dynamic;
	/** The signal that dispatched the event. */
	function getSignal() : IPrioritySignal;
	function setSignal(value : IPrioritySignal) : IPrioritySignal;
	/** Indicates whether the event is a bubbling event. */
	function getBubbles() : Bool;
	function setBubbles(value : Bool) : Bool;
	/** Returns a new copy of the instance. */
	function clone() : IEvent;
}

